#include <bits/stdc++.h>
#define int long long 
using namespace std;

const int maxn = 1e3 + 5;
int n, V;
int dp[maxn];
int w[maxn], v[maxn];

void solve(){
	cin >> n >> V;
	for (int i=1;i<=n;i++) {
		cin >> w[i] >> v[i]; 
	}
	
	for (int i=1;i<=n;i++) {
		for (int j=w[i];j<=V;j++) {
			dp[j] = max(dp[j], dp[j-w[i]]+v[i]);
		}
	}
	
	int ans = 0;
	
	for (int i=1;i<=V;i++) {
		ans = max(ans, dp[i]);
	}
	
	cout << ans << '\n';
	
}

signed main(){
	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
	solve();
	return 0;
}
